import { http } from '@/api/service/request';
import { BaseResult } from '@/api/types';
import { ComponentDTO } from './case';

/**
 * 创建组件
 * @param caseId 案例ID
 * @param data 组件数据
 * @returns 创建结果
 */
export const createComponent = (caseId: string, data: ComponentDTO) => {
  return http.request<BaseResult<ComponentDTO>>('post', `/component/case/${caseId}`, { data });
};

/**
 * 更新组件
 * @param id 组件ID
 * @param data 组件数据
 * @returns 更新结果
 */
export const updateComponent = (id: string, data: ComponentDTO) => {
  return http.request<BaseResult<ComponentDTO>>('put', `/component/${id}`, { data });
};

/**
 * 获取组件详情
 * @param id 组件ID
 * @returns 组件详情
 */
export const getComponent = (id: string) => {
  return http.request<BaseResult<ComponentDTO>>('get', `/component/${id}`);
};

/**
 * 获取组件关联的文件
 * @param id 组件ID
 * @returns 文件列表
 */
export const getComponentFiles = (id: string) => {
  return http.request<BaseResult<any>>('get', `/component/${id}/files`);
};

/**
 * 更新组件关联的文件
 * @param id 组件ID
 * @param fileIds 文件ID列表
 * @returns 更新结果
 */
export const updateComponentFiles = (id: string, fileIds: string[]) => {
  return http.request<BaseResult<any>>('put', `/component/${id}/files`, { data: fileIds });
};

/**
 * 获取组件关联的知识点
 * @param id 组件ID
 * @returns 知识点列表
 */
export const getComponentKnowledge = (id: string) => {
  return http.request<BaseResult<any>>('get', `/component/${id}/knowledge`);
};

/**
 * 更新组件关联的知识点
 * @param id 组件ID
 * @param knowledgeIds 知识点ID列表
 * @returns 更新结果
 */
export const updateComponentKnowledge = (id: string, knowledgeIds: string[]) => {
  return http.request<BaseResult<any>>('put', `/component/${id}/knowledge`, { data: knowledgeIds });
}; 